<?php
class evento extends CI_Controller{
	
	function __construct() {
		parent::__construct ();
		$this->load->model ( 'evento_model' );
		$this->load->model ( 'lugar_model' );
		$this->load->library ( 'form_validation' );
		$this->load->library ( 'grocery_CRUD' );
		}
	
	public function guardar(){
		$this->load->library('table');
		$tmp = array('table_open' => '<table border="1" cellpadding="2" cellpacing="1>"');
		$this->table->set_template($tmp);
		
		$this->form_validation->set_error_delimiters ( '<span class="mensaje-error">', '</span>' );	
		
		$this->form_validation->set_rules('nombre', 'Nombre', 'required');
		$this->form_validation->set_rules('jugadores', 'Cantidad de jugadores', 'required');
		$this->form_validation->set_rules('fecha', 'Fecha', 'required');
		$this->form_validation->set_rules('hora', 'Horario', 'required');		
		$this->form_validation->set_rules('tipo', 'Tipo', 'required');
		$this->form_validation->set_rules('lugar', 'Lugar');
		$this->form_validation->set_rules('direccion', 'Direccion');
		$this->form_validation->set_rules('transporte', 'Transporte', 'required');
		$this->form_validation->set_rules('descripcion', 'Descripcion', 'required');
		$this->form_validation->set_rules('resultado', 'Resultado', 'required');
		$this->form_validation->set_rules('des_lugar', 'Descripcion_lugar');
		
		
		$resultado_valid = $this->form_validation->run();
	
		if ($resultado_valid==false){
			$this->alta ();
			
		}else {
			if ($this->input->post('seleccion') == true){
				$loca = $this->input->post('opcion');
				$iden = $this->lugar_model->id_predefinido_por_nombre($loca)->idpredefinidos;
			}
			if ($this->input->post('lugar') == true){
				if ($this->input->post('direccion') == true){
					if ($this->input->post('des_lugar') == true){
				$loca = $this->input->post('lugar');
				$dir = $this->input->post('direccion');
				$desc = $this->input->post('des_lugar');
				$da = array('direccion' => $dir);
				$iden = $this->lugar_model->guardar_lugar($da);
				$data = array('descripcion' => $desc, 'lugar_idlugar' => $iden, 'nombre' => $loca);
				$id_lu_pri = $this->lugar_model->gardar_lugar_privado($data);
					}
				}	
			}			
		
			$datos = array('nombre' => $this->input->post('nombre'),
					'localizacion' => $loca,
					'cant_jugadores' => $this->input->post('jugadores'),
					'fecha' => $this->input->post('fecha'),
					'hora' => $this->input->post('hora'),
					'descripcion' => $this->input->post('descripcion'),
					'resultado' => $this->input->post('resultado'),
					'lugar_idlugar' => $iden
			);
			
			$this->evento_model->guardar($datos);
			$this->evento_creado();				
		}
	}
	
	public function listar(){
		$listado = $this->evento_model->listar_todos();
		return $listado;	
	}
	
	public function listar_evento_por_id($id){
		
		$el_evento = $this->evento_model->listar_un_evento($id);
		return $el_evento;
	}
	
	public function update_evento($id){
		$this->form_validation->set_error_delimiters ( '<span class="mensaje-error">', '</span>' );
		$this->form_validation->set_rules('nombre', 'Nombre', 'required');
		$this->form_validation->set_rules('jugadores', 'Cantidad de jugadores', 'required');
		$this->form_validation->set_rules('fecha', 'Fecha', 'required');
		$this->form_validation->set_rules('hora', 'Horario', 'required');
		$this->form_validation->set_rules('descripcion', 'Descripcion', 'required');
		$this->form_validation->set_rules('resultado', 'Resultado', 'required');
				
		$resultado_valid = $this->form_validation->run();
		
		if ($resultado_valid==false){
			$this-> actualizar_el_evento($id);
		}else {
			$datos = array('idevento' => $id, 'nombre' => $this->input->post('nombre'),
					'cant_jugadores' => $this->input->post('jugadores'),
					'fecha' => $this->input->post('fecha'),
					'hora' => $this->input->post('hora'),
					'descripcion' => $this->input->post('descripcion'),
					'resultado' => $this->input->post('resultado')
			);
			
			$ide=$this->evento_model->actualizar($datos);
			$this->listar_el_evento($ide);
			
		}
	}
	
	

	function alta(){
		$data['lugar'] = $this->lugar_model->listar_predefinidos();
		$this->cargar_vista('evento/crear', $data);
	}
	
	 function evento_creado(){
	 	$this->load->view ( 'estructura/header' );
	 	$this->load->view ( 'estructura/asides' );
	 	echo "<title>Evento Creado</title>";
	 	$this->load->view ( 'evento/evento_se_creo' );
	 	$this->load->view ( 'estructura/footer' );
	 }
	 
	 function listar_eventos(){
	 	$data['lista_eventos'] = $this->evento_model->listar_todos();
	 	$this->cargar_vista ( 'evento/listado', $data);
	
	 }
	 
	 function listar_el_evento($id){
	 	$this->load->view ( 'estructura/header' );
	 	$this->load->view ( 'estructura/asides' );
	 	$un_evento_por_id = $this->listar_evento_por_id($id);
	 	$data['evento'] =  $un_evento_por_id;
	 	echo "<title>Evento: ".$un_evento_por_id->nombre."</title>";
	 	$this->load->view ('evento/ver_evento', $data);
	 	$this->load->view ( 'estructura/footer' );
	 }
	 
	 function actualizar_el_evento($id){
	 	$this->load->view ( 'estructura/header' );
	 	$this->load->view ( 'estructura/asides' );
	 	$un_evento_por_id = $this->listar_evento_por_id($id);
	 	$data['evento'] =  $un_evento_por_id;
	 	echo "<title>Actualizar Evento: ".$un_evento_por_id->nombre."</title>";
	 	$this->load->view ('evento/modificar', $data);
	 	$this->load->view ( 'estructura/footer' );
	 }
	 
	 function borrar_por_id($id){
	 	$this->load->view ( 'estructura/header' );
	 	$this->load->view ( 'estructura/asides' );
	 	$num=$this->evento_model->eliminar($id);
	 	$data['evento']=$num;
	 	echo "<title>Evento Eliminado</title>";
	 	$this->load->view ('evento/evento_eliminado', $data);
	 	$this->load->view ( 'estructura/footer' );
	 }
	
	 function crud() {
	 	$this->grocery_crud->set_language ( 'spanish' );
	 
	 	$this->grocery_crud->set_table ( 'eventor' );
	 	$this->grocery_crud->set_relation ( 'lugar_idlugar', 'lugar', 'nombre' );
	 	$this->grocery_crud->required_fields ( 'nombre', 'descripcion', 'lugar_idlugar', 'cant_jugadores', 'hora', 'fecha', 'hora' );
	 	$this->grocery_crud->set_subject ( 'Evento' );
	 	$this->grocery_crud->display_as ( 'fecha', 'Fecha' )->display_as ( 'lugar_idlugar', 'Lugar' )->display_as ( 'cant_jugadores', 'Cantidad de jugadores' )->display_as ( 'fecha', 'Fecha' );
	 	$this->grocery_crud->fields ( 'nombre', 'descripcion', 'lugar_idlugar', 'cant_jugadores', 'hora', 'fecha' );
	 	$this->grocery_crud->field_type('hora','time');
	 	$this->grocery_crud->set_rules('cant_jugadores','Cantidad de jugadores','integer');
	 	
	 	$output = $this->grocery_crud->render ();
	 	$this->load->view ( 'example_crud', $output );
	 }
	 function cargar_vista($vista, $datos) {
	 	$this->load->view ( 'estructura/header' );
	 	$this->load->view ( 'estructura/panel_user_event' );
	 	$this->load->view ( $vista, $datos );
	 	$this->load->view ( 'estructura/panel_adds' );
	 	$this->load->view ( 'estructura/footer' );
	 }
}